import React, { Component } from 'react'
import checkPropTypes from 'prop-types'

console.log(checkPropTypes);
export default class Navbar extends Component {
    state = {
        // 只能内部自己用的，外部无法改变
    }

    // 定义类属性(静态成员)，在这里进行属性验证
    static propTypes = {
        title: checkPropTypes.string, // 验证是不是字符串的方法
        leftshow: checkPropTypes.bool, // 验证是不是布尔值的方法
    }

    // 定义类属性(静态成员)，在这里设置属性默认值
    static defaultProps = {
        title: '',
        leftshow: true
    }


    render() {
        // 属性是父组件传来的，this.props
        console.log('属性', this.props);
        let { title, leftshow } = this.props

        // 接收属性的时候做验证???
        return (
            <div>
                {leftshow && <button>返回</button>}
                navbar-{title}
                <button>home</button>
            </div>
        )
    }
}

// 类属性 => 在这里进行属性验证 => 这样写不好看
// Navbar.propTypes = {
//     title: checkPropTypes.string, // 验证是不是字符串的方法
//     leftshow: checkPropTypes.bool, // 验证是不是布尔值的方法
// }

// 类属性 => 在这里进行设置属性默认值
// Navbar.defaultProps = {
//     title: '',
//     leftshow: true
// }


class Test {
    a = 1 // 对象属性(动态成员)
    static a = 100 // 类属性(静态成员)
}

Test.a = 100 // 访问类属性(静态成员)可以直接访问到
let obj = new Test() // 访问对象属性(动态成员)必须要实例化类
console.log(Test.a, obj.a); // 100 1